package co.baiku.boot.im.tencent.request.filter;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;

/**
 * 请求过滤器
 * <p>
 * 拉取指定的信息
 * <ul>
 * <li>可以指定拉取的基础信息字段，在 GroupBaseInfoFilter 中设置。</li>
 * <li>可以指定拉取的成员信息字段，在 MemberInfoFilter 中设置。</li>
 * <li>可以指定拉取的群组维度的自定字段，在 AppDefinedDataFilter_Group 中设置（该字段默认没有，需要额外开通，请求包字段表中有说明）。</li>
 * <li>可以指定拉取的群成员维度的自定字段，在 AppDefinedDataFilter_GroupMember（该字段默认没有，需要额外开通，请求包字段表中有说明）。</li>
 * </ul>
 * </p>
 */
public class GroupResponseFilter {
    /**
     * 如果基础信息字段，请在此数组中添加
     * ["Type","Name","Introduction","Notification"]
     *
     * @see <a href='https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E5.9F.BA.E7.A1.80.E8.B5.84.E6.96.99'>群基础资料</a>
     */
    @JsonProperty("GroupBaseInfoFilter")
    private List<String> groupBaseInfoFilter;
    /**
     * 如果需要成员信息，请添加此数组
     * ["Account", // 成员ID <br/>
     * "Role"]
     *
     * @see <a href='https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E6.88.90.E5.91.98.E8.B5.84.E6.96.99'>成员信息</a>
     */
    @JsonProperty("MemberInfoFilter")
    private List<String> memberInfoFilter;
    /**
     * 群组维度的自定义字段过滤，该默认情况是没有的
     *
     * @see <a href='https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5'>群组维度</a>
     */
    @JsonProperty("AppDefinedDataFilter_Group")
    private List<String> appDefinedDataFilterGroup;
    /**
     * 群成员维度自定义字段过滤，该默认情况是没有的
     *
     * @see <a href='https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5'>群成员维度</a>
     */
    @JsonProperty("AppDefinedDataFilter_GroupMember")
    private List<String> appDefinedDataFilterGroupMember;
    /**
     * 需要自身在群内的信息
     * <p>
     * 分别包含 GroupBaseInfoFilter 和 SelfInfoFilter 两个过滤器； GroupBaseInfoFilter 表示需要拉取哪些基础信息字段，详情请参阅 <a href='https://cloud.tencent.com/document/product/269/1502'>群组系统</a>；
     * SelfInfoFilter 表示需要拉取用户在每个群组中的哪些个人资料，详情请参阅 <a href='https://cloud.tencent.com/document/product/269/1502'>群组系统</a>
     * </p>
     *
     * @see <a href='https://cloud.tencent.com/document/product/269/1625'>获取某一用户加入的群组</a>
     */
    @JsonProperty("SelfInfoFilter")
    private String selfInfoFilter;

    public String getSelfInfoFilter() {
        return selfInfoFilter;
    }

    public void setSelfInfoFilter(String selfInfoFilter) {
        this.selfInfoFilter = selfInfoFilter;
    }

    public List<String> getGroupBaseInfoFilter() {
        return groupBaseInfoFilter;
    }

    public void setGroupBaseInfoFilter(List<String> groupBaseInfoFilter) {
        this.groupBaseInfoFilter = groupBaseInfoFilter;
    }

    public List<String> getMemberInfoFilter() {
        return memberInfoFilter;
    }

    public void setMemberInfoFilter(List<String> memberInfoFilter) {
        this.memberInfoFilter = memberInfoFilter;
    }

    public List<String> getAppDefinedDataFilterGroup() {
        return appDefinedDataFilterGroup;
    }

    public void setAppDefinedDataFilterGroup(List<String> appDefinedDataFilterGroup) {
        this.appDefinedDataFilterGroup = appDefinedDataFilterGroup;
    }

    public List<String> getAppDefinedDataFilterGroupMember() {
        return appDefinedDataFilterGroupMember;
    }

    public void setAppDefinedDataFilterGroupMember(List<String> appDefinedDataFilterGroupMember) {
        this.appDefinedDataFilterGroupMember = appDefinedDataFilterGroupMember;
    }
}
